Model তৈরির সময় Data Validation গুরুত্বপূর্ণ একটি প্রক্রিয়া যা নিশ্চিত করে যে, মডেলের ডেটা সঠিক, বৈধ এবং প্রয়োজনীয় ফরম্যাটে রয়েছে। MVVM প্যাটার্নে, Model অ্যাপ্লিকেশনের ডেটা হ্যান্ডলিং এবং বিজনেস লজিকের জন্য দায়ী, এবং Data Validation মডেল স্তরের প্রাথমিক কাজ।
এখানে Model তৈরি করা এবং Data Validation সম্পর্কে বিস্তারিত আলোচনা করা হয়েছে।
Model অ্যাপ্লিকেশনের ডেটা ও লজিকের কেন্দ্রবিন্দু। এটি সাধারণত ডেটার প্রপার্টি এবং সেই ডেটা পরিচালনার জন্য কিছু কার্যকরী মেথড ধারণ করে।
ডেটা প্রপার্টি তৈরি: প্রথমে, মডেলটির জন্য বিভিন্ন প্রপার্টি তৈরি করতে হবে। উদাহরণস্বরূপ, যদি আপনি একটি Product
মডেল তৈরি করছেন, তাহলে তার নাম, দাম এবং পরিমাণের জন্য প্রপার্টি থাকতে পারে।
public class Product
{
public string Name { get; set; }
public decimal Price { get; set; }
public int Quantity { get; set; }
}
ব্যবসায়িক লজিক বা কার্যক্রম তৈরি: Model এ সেই লজিক থাকতে পারে যা ডেটার উপরে প্রক্রিয়া চালায়। উদাহরণস্বরূপ, একটি CalculateTotalPrice
মেথড তৈরি করা যেতে পারে যা মূল্য এবং পরিমাণের ভিত্তিতে মোট মূল্য হিসাব করবে।
public decimal CalculateTotalPrice()
{
return Price * Quantity;
}
ডেটাবেস বা ডেটা সোর্সে সংযোগ: মডেলটি ডেটাবেসের সঙ্গে যোগাযোগ করার জন্য ADO.NET, Entity Framework বা Dapper ব্যবহার করতে পারে। নিচে একটি উদাহরণ দেখানো হয়েছে যেখানে একটি ডেটাবেস থেকে প্রোডাক্টের তালিকা পড়া হচ্ছে।
public class ProductRepository
{
private readonly DbContext _context;
public ProductRepository(DbContext context)
{
_context = context;
}
public List<Product> GetAllProducts()
{
return _context.Products.ToList();
}
public void AddProduct(Product product)
{
_context.Products.Add(product);
_context.SaveChanges();
}
}
Data Validation হল এমন একটি প্রক্রিয়া যা নিশ্চিত করে যে মডেলের ডেটা সঠিক এবং বৈধ। এটি ডেটা ইনপুটের সময় বা মডেল সংক্রান্ত অপারেশনগুলির আগে চালানো হয়, যাতে অবৈধ বা ভুল ডেটা সিস্টেমে প্রবাহিত না হয়। Data Validation প্রায়ই Model-এর অংশ হিসাবে যুক্ত থাকে।
প্রপার্টি লেভেল ভ্যালিডেশন (Property Level Validation):
public class Product
{
private decimal _price;
public string Name { get; set; }
public decimal Price
{
get { return _price; }
set
{
if (value < 0)
throw new ArgumentException("Price cannot be negative");
_price = value;
}
}
public int Quantity { get; set; }
}
এখানে Price
প্রপার্টির setter-এ একটি ভ্যালিডেশন যোগ করা হয়েছে, যা যদি মূল্য নেতিবাচক হয় তবে একটি ArgumentException
ছুঁড়ে দেয়।
ডেটা অ্যানোটেশন (Data Annotations):
উদাহরণ:
public class Product
{
[Required(ErrorMessage = "Product Name is required")]
[StringLength(100, ErrorMessage = "Product Name cannot be longer than 100 characters")]
public string Name { get; set; }
[Range(0, double.MaxValue, ErrorMessage = "Price cannot be negative")]
public decimal Price { get; set; }
[Range(0, int.MaxValue, ErrorMessage = "Quantity cannot be negative")]
public int Quantity { get; set; }
}
এই উদাহরণে Data Annotations ব্যবহার করা হয়েছে যাতে প্রোডাক্টের নামের জন্য একটি বাধ্যতামূলক ক্ষেত্র তৈরি করা হয়, দাম এবং পরিমাণের জন্য একটি সীমা নির্ধারণ করা হয়।
কাস্টম ভ্যালিডেশন (Custom Validation):
public class Product
{
public string Name { get; set; }
public decimal Price { get; set; }
public int Quantity { get; set; }
// কাস্টম ভ্যালিডেশন মেথড
public bool IsValid()
{
if (Price < 0)
return false;
if (Quantity < 0)
return false;
if (Price == 0 && Quantity == 0)
return false; // কিছু পণ্য বিক্রি করতে হলে দাম বা পরিমাণ অবশ্যই থাকতে হবে
return true;
}
}
এখানে IsValid
মেথড ব্যবহার করা হয়েছে যা কাস্টম লজিকের মাধ্যমে Price এবং Quantity এর মান যাচাই করে।
বিজনেস লজিক ভিত্তিক ভ্যালিডেশন (Business Logic-based Validation):
public class Product
{
public string Name { get; set; }
public decimal Price { get; set; }
public int Quantity { get; set; }
public bool IsAvailableForSale()
{
// কিছু নির্দিষ্ট ব্যবসায়িক নিয়ম
return Price > 0 && Quantity > 0;
}
}
Model এর মধ্যে Data Validation যুক্ত করার ফলে:
এইভাবে, Model তৈরি এবং Data Validation এর মাধ্যমে অ্যাপ্লিকেশনের ডেটা সঠিকভাবে প্রক্রিয়া ও পরিচালিত হয়।
common.read_more